From: Keir Fraser Date: Thu, 25 Mar 2010 10:01:05 +0000 (+0000) Subject: VT-d: should not disable VT-d when find unknown DMAR structure type X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~12475 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=024ce79aea88be56dae38cf54e054e6d354bb585;p=xen.git VT-d: should not disable VT-d when find unknown DMAR structure type Now 4 DMAR structure types are supported (type value 0 ~ 3). Type values > 3 are reserved for future use. Current implementation disables VT-d when find unknown DMAR structure type, this may lead to VT-d disabling on future platforms before supporting new types on Xen. For forward compatibility, just skip unknown structures by skipping the appropriate number of bytes indicated by the Length field, and then VT-d still can be used. Signed-off-by: Weidong Han --- diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c index 310a66da3e..a20f76a574 100644 --- a/xen/drivers/passthrough/vtd/dmar.c +++ b/xen/drivers/passthrough/vtd/dmar.c @@ -713,7 +713,6 @@ static int __init acpi_parse_dmar(struct acpi_table_header *table) dprintk(XENLOG_WARNING VTDPREFIX, "Unknown DMAR structure type %x\n", entry_header->type); - ret = -EINVAL; break; } if ( ret )